﻿using System.ServiceModel;
using QuizServicesAzure.Requests;
using QuizServicesAzure.Responses;

namespace QuizServicesAzure
{
    // NOTA: è possibile utilizzare il comando "Rinomina" del menu "Refactoring" per modificare il nome di interfaccia "IService1" nel codice e nel file di configurazione contemporaneamente.
    [ServiceContract]
    public interface IQuizService
    {

        #region Da Eliminare

        #endregion



        [OperationContract]
        GetAllDomandeByTipologiaTestResponse GetAllDomandeByTipologiaTest(GetAllDomandeByTipologiaTestRequest request);

        [OperationContract]
        SetPunteggioResponse SetPunteggio(SetPunteggioRequest set);

        [OperationContract]
        GetAllQuestionarioResponse GetAllQuestionario(GetAllQuestionarioRequest request);

        [OperationContract]
        GetListPunteggioResponse GetListPunteggio(GetListPunteggioRequest request);

        [OperationContract]
        GetAllListPunteggiResponse GetAllListPunteggi(GetListPunteggioRequest request);

        [OperationContract]
        GetTipologieAndDifficoltaResponse GetTipologieAndDifficolta(GetTipologieAndDifficoltaRequest request);

        #region Nuovi Contratti

        [OperationContract]
        SetPunteggioResponse SetPunteggioV2(SetPunteggioNewRequest request);

        [OperationContract]
        GetAllListPunteggiResponse GetAllListPunteggiByDifficolta(short IdDifficolta);

        #endregion


        #region Contratti Phone


        [OperationContract]
        InsertNuovaDomandaResponse InsertNuovaDomanda(InsertNuovaDomandaRequest request);

        [OperationContract]
        GetTipologieAndDifficoltaResponse GetTipologieAndDifficoltaPhone(GetTipologieAndDifficoltaRequest request);

        [OperationContract]
        GetAllQuestionarioResponse GetAllQuestionarioPhone(GetAllQuestionarioRequest request);

        [OperationContract]
        SetPunteggioResponse SetPunteggioPhone(SetPunteggioNewRequest request);

        [OperationContract]
        GetAllListPunteggiResponse GetAllListPunteggiPhone(GetListPunteggioRequest request);
      
        #endregion
    }
}
